<template>
	<el-dialog :title="!dataForm.id ? '新增' : '修改'" :close-on-click-modal="false" :visible.sync="visible">
		<el-form :model="dataForm" :rules="dataRule" ref="dataForm" @keyup.enter.native="dataFormSubmit()"
			label-width="80px">
			<el-form-item label="用户名" prop="userName">
				<el-input v-model="dataForm.userName" placeholder="登录帐号"></el-input>
			</el-form-item>
			<el-form-item label="密码" prop="password" :class="{ 'is-required': !dataForm.id }">
				<el-input v-model="dataForm.password" type="password" placeholder="密码"></el-input>
			</el-form-item>
			<el-form-item label="确认密码" prop="comfirmPassword" :class="{ 'is-required': !dataForm.id }">
				<el-input v-model="dataForm.comfirmPassword" type="password" placeholder="确认密码"></el-input>
			</el-form-item>
			<el-form-item label="邮箱" prop="email">
				<el-input v-model="dataForm.email" placeholder="邮箱"></el-input>
			</el-form-item>
			<el-form-item label="手机号" prop="mobile">
				<el-input v-model="dataForm.mobile" placeholder="手机号"></el-input>
			</el-form-item>
			<!-- <el-form-item label="角色" size="mini" prop="roleIdList">
				<el-checkbox-group v-model="dataForm.roleIdList" @change="changes">
					<el-checkbox v-for="role in roleList" :key="role.roleId" :label="role.roleId">{{ role.roleName }}
					</el-checkbox>
				</el-checkbox-group>
			</el-form-item> -->
			<!-- <el-form-item label="城市" size="mini" prop="city"> -->
				<!-- <el-checkbox-group v-model="dataForm.helpCampusId" @change="changesC">
					<el-checkbox v-for="role in manageList" :key="role.campusId" :label="role.campusId">
						{{ role.campusName }}</el-checkbox>
				</el-checkbox-group> -->
				<!-- <el-radio-group v-model="dataForm.helpCampusId">
				    <el-radio v-for="role in manageList" :key="role.campusId" :label="role.campusId">{{ role.campusName }}</el-radio>
				  </el-radio-group> -->
				 <!-- <el-select v-model="dataForm.helpCampusId" filterable remote :remote-method="remoteMethod" :loading="loading"
				  	style="width:200px;margin-left: 10px;">
				  	<el-option v-for="item in manageList" :key="item.campusId" :label="item.campusName"
				  		:value="item.campusId">
				  	</el-option>
				  </el-select> -->
			<!-- 	<el-input v-model="dataForm.city" placeholder="城市"></el-input>
			</el-form-item>
			<el-form-item label="代理佣金" prop="mobile">
				<el-input v-model="dataForm.rate" placeholder="代理佣金比例,例如0.1"></el-input>
			</el-form-item>
			<el-form-item label="钱包" prop=" money">
				<el-input v-model="dataForm.money" disabled placeholder="钱包"></el-input>
			</el-form-item> -->
			<el-form-item label="状态" size="mini" prop="status">
				<el-radio-group v-model="dataForm.status">
					<el-radio :label="0">禁用</el-radio>
					<el-radio :label="1">正常</el-radio>
				</el-radio-group>
			</el-form-item>
		</el-form>
		<span slot="footer" class="dialog-footer">
			<el-button @click="visible = false">取消</el-button>
			<el-button type="primary" @click="dataFormSubmit()">确定</el-button>
		</span>
	</el-dialog>
</template>

<script>
	import {
		isEmail,
		isMobile
	} from '@/utils/validate'
	export default {
		data() {
			var validatePassword = (rule, value, callback) => {
				if (!this.dataForm.id && !/\S/.test(value)) {
					callback(new Error('密码不能为空'))
				} else {
					callback()
				}
			}
			var validateComfirmPassword = (rule, value, callback) => {
				if (!this.dataForm.id && !/\S/.test(value)) {
					callback(new Error('确认密码不能为空'))
				} else if (this.dataForm.password !== value) {
					callback(new Error('确认密码与密码输入不一致'))
				} else {
					callback()
				}
			}
			var validateEmail = (rule, value, callback) => {
				if (!isEmail(value)) {
					callback(new Error('邮箱格式错误'))
				} else {
					callback()
				}
			}
			var validateMobile = (rule, value, callback) => {
				if (!isMobile(value)) {
					callback(new Error('手机号格式错误'))
				} else {
					callback()
				}
			}
			return {
				visible: false,
				roleList: [5],
				manageList: [],
				dataForm: {
					id: 0,
					userName: '',
					password: '',
					comfirmPassword: '',
					salt: '',
					email: '',
					mobile: '',
					roleIdList: [5],
					helpCampusId: [],
					status: 1,
					cityAgency:1,
					rate:'',
					city:'',
					money:0,
				},
				dataRule: {
					userName: [{
						required: true,
						message: '用户名不能为空',
						trigger: 'blur'
					}],
					password: [{
						validator: validatePassword,
						trigger: 'blur'
					}],
					comfirmPassword: [{
						validator: validateComfirmPassword,
						trigger: 'blur'
					}],
					email: [{
							required: true,
							message: '邮箱不能为空',
							trigger: 'blur'
						},
						{
							validator: validateEmail,
							trigger: 'blur'
						}
					],
					mobile: [{
							required: true,
							message: '手机号不能为空',
							trigger: 'blur'
						},
						{
							validator: validateMobile,
							trigger: 'blur'
						}
					],
					// mobile: [{
					// 		required: true,
					// 		message: '城市不能为空',
					// 		trigger: 'blur'
					// 	},
					// ],

				},
				show:false,
				loading: false,
				list: [],
			}
		},
		methods: {
			init(id) {
				this.dataForm.id = id || 0
				this.$http({
					url: this.$http.adornUrl('/sys/role/select'),
					method: 'get',
					params: this.$http.adornParams()
				}).then(({
					data
				}) => {
					this.roleList = data && data.code === 0 ? data.list : []
				}).then(() => {
					this.visible = true
					this.$nextTick(() => {
						this.$refs['dataForm'].resetFields()
					})
				}).then(() => {
					if (this.dataForm.id) {
						this.$http({
							url: this.$http.adornUrl(`sys/user/info/${this.dataForm.id}`),
							method: 'get',
							params: this.$http.adornParams()
						}).then(({
							data
						}) => {
							if (data && data.code === 0) {
								this.dataForm.userName = data.user.username
								this.dataForm.salt = data.user.salt
								this.dataForm.email = data.user.email
								this.dataForm.mobile = data.user.mobile
								// this.dataForm.roleIdList = this.roleIdList
								this.dataForm.city = data.user.city
								this.dataForm.status = data.user.status
								this.dataForm.rate = data.user.rate
								this.dataForm.money = data.user.money
								var shows = 1
								// for(var i in data.user.roleIdList){
								// 	if(data.user.roleIdList[i]===10){
								// 		shows = 2
								// 	}
								// }
								if(shows==2){
									this.show = true
								}
								if(shows==1){
									this.show = false
								}
							}
						})
					}else{
						this.dataForm.userName = ''
						this.dataForm.salt = ''
						this.dataForm.email = ''
						this.dataForm.mobile = ''
						// this.dataForm.roleIdList = this.roleIdList
						this.dataForm.city = ''
						this.dataForm.status = ''
						this.dataForm.rate = ''
						this.dataForm.money = 0
					}
				})
			},
			// 获取小区数据列表
			homeSelect(id) {
				this.$http({
					url: this.$http.adornUrl('helpCampus/selectCampusList'),
					method: 'get',
					params: this.$http.adornParams({
						'isOpen':1
					})
				}).then(({
					data
				}) => {
					let returnData = data.data;
					this.manageList = returnData
					this.list = this.manageList
				})
			},
			changes(val){
				var shows = 1
				for(var i in val){
					if(val[i]===10){
						shows = 2
					}
				}
				if(shows==2){
					this.show = true
				}
				if(shows==1){
					this.show = false
				}
			},
			changesC(val){
				console.log(val)
			},
			// 表单提交
			dataFormSubmit() {

				console.log('this.dataForm.roleIdList',this.dataForm.roleIdList)
				this.$refs['dataForm'].validate((valid) => {
					if (valid) {
						// if (this.dataForm.roleIdList.length < 1) {
						// 	this.$message({
						// 		message: '请选择角色',
						// 		type: 'error',
						// 		duration: 1500,
						// 	})
						// // } else if (this.dataForm.helpCampusId.length < 1) {
						// // 	this.$message({
						// // 		message: '请选择管理小区',
						// // 		type: 'error',
						// // 		duration: 1500,
						// // 	})
						// } else {
							this.$http({
								url: this.$http.adornUrl(
									`/sys/user/${!this.dataForm.id ? 'save' : 'update'}`),
								method: 'post',
								data: this.$http.adornData({
									'userId': this.dataForm.id || undefined,
									'username': this.dataForm.userName,
									'password': this.dataForm.password,
									'salt': this.dataForm.salt,
									'email': this.dataForm.email,
									'mobile': this.dataForm.mobile,
									'status': this.dataForm.status,
									'roleIdList': this.dataForm.roleIdList,
									'city': this.dataForm.city,
									'cityAgency':this.dataForm.cityAgency,
									'rate':this.dataForm.rate,
									'money':this.dataForm.money,
								})
							}).then(({
								data
							}) => {
								if (data && data.code === 0) {
									this.$message({
										message: '操作成功',
										type: 'success',
										duration: 1500,
										onClose: () => {
											this.visible = false
											this.$emit('refreshDataList')
										}
									})
								} else {
									this.$message.error(data.msg)
								}
							})
						// }
					}
				})
			},
			remoteMethod(query) {
				console.log('query',query)
				if (query !== '') {
					this.loading = true;
					setTimeout(() => {
						this.loading = false;
						this.manageList = this.list.filter(item => {
							return item.campusName.toLowerCase()
								.indexOf(query.toLowerCase()) > -1;
						});
					}, 200);
				} else {
					this.manageList = this.list
				}
			}
		}
	}
</script>
